1. Field of the Invention
The present invention relates to a method of controlling a redundant manipulator constituted by a plurality of arms which are sequentially connected via joints comprised of redundant joints and non-redundant joints, in which a joint angle, assumed by each joint, is determined when the hand position and the posture thereof are given as conditions.
2. Description of the Related Art
Manipulators comprised of a plurality of arms sequentially connected via a plurality of joints for performing various operations using various tools attached to the hand have been developed. For a manipulator having many joints to perform a predetermined operation, it is necessary to control the position of the hand and the posture of the manipulator. The position and the direction of the hand can be uniformly determined by a matrix calculation when the angle of each joint is specified, and this determination is called a “kinematics problem”. On the other hand, a problem of determining each joint angle when the hand position and the posture of the manipulator are set as conditions (six variables since this involves three-dimensional conditions) is known as an “inverse kinematics problem”. For the manipulator to operate, calculation to determine a solution to the inverse kinematics problem is essential, but in an inverse kinematics problem, it is regarded that there is no general analytical solution that is established for any type of manipulator. Whereas many practical use manipulator and robots have structures that can obtain analytical solutions of inverse kinematics problems. If it takes too much time to obtain a solution to an inverse kinematics problem, each joint angle can not be controlled to catch up with the constantly changing hand position and posture. Therefore determining a numerical solution to an inverse kinematics problem online and in real-time, so that the manipulator can perform an accurate operation at high-speed, has been researched.
In the case of three-dimensional space, the position and direction are determined by three variables respectively. A manipulator having seven or more joints, including a roll axis, includes over six joints that are required to determine the hand position and direction. Such an excessive number of joints are called “redundant joints”, and a manipulator that includes one or more redundant joints is called a “redundant manipulator”. In a practical use manipulator, a hand position and direction, other than the roll axis, are determined in advance, and a necessary operation is performed by rotating the hand around the roll axis thereof in this status. In this case, the roll axis rotation performed by the joint of the hand of the manipulator can be handled independently from the hand position and rotation around other axe, so independent variables to determine the direction, as an inverse kinematics problem, can be decreased, that is to two variables. Therefore the inverse kinematics problem becomes a problem to solve a total of five variables, the above two variables and three variables for determining a position in the three-dimensional space (see the non-patent publication, Yoshiaki Ohkami, Osamu Okamoto, Tomoya Shibata, 44th Automatic Control Joint Conference, No. 01-253, Nov. 22, 2001, pp. 462-463). Even a redundant manipulator becomes a non-redundant manipulator, where all five joints, other than the roll axis, are non-redundant joints if the redundant joints and joint angles thereof are specified. Therefore normally five joint angles are solved as an inverse kinematics problem. To solve this inverse kinematics problem, it has been proposed that an integrated vector is defined for the hand position and posture, and a numerical solution of the joint angle of the manipulator is obtained by convergence calculation by repeat based on the Newton-Raphson Method.
As an example of controlling a redundant manipulator that has seven degrees of freedom, a control method of assigning one joint as a joint for controlling the redundancy freedom and the other six joints as joints for hand motion control, and determining the motion of a hand having six degrees of freedom (including roll axis) by the six joints for hand motion control, has been proposed (see Japanese Patent Application Laid-Open No. H6-143172 (paragraph [0030]-[0047], FIG. 1, FIG. 4, FIG. 5)). According to this method of controlling a redundant manipulator, the redundancy freedom control means determines the hand position and posture by a kinematics (forward kinematics) equation using the data detected by the angle detection means. If one of the joints is defined as the joint for redundancy freedom control, the joint angle of the joint becomes a parameterized joint angle, and the manipulator has six degrees of freedom only for the joints for hand motion control, so the equation of an inverse kinematics problem can be solved as a solution that depends on the parameter. Using each joint angle obtained by the calculation, the potential value of the evaluating function is determined, and the joint angle of the joint for the redundancy freedom control, that was handled as a parameter, is determined by this evaluation, and the velocity command values for the joints for hand motion control are output. The hand motion control means, on the other hand, solves the inverse kinematics equation using the present joint angles and the kinematics target value instruction means, and determines the velocity command values of the joints for hand motion control. Operation of the manipulator is controlled by sending the determined velocity command values to each joint control means. The redundancy freedom control and the hand motion control are independently performed, which makes it possible to set a control period independently and to decrease the sampling period, so that the redundant manipulator can operate in real-time.
However in the above prior art, there is one redundant joint, and it is disclosed how wide the joint angle of the redundant joint will be determined when one redundant joint is defined, but no disclosure is provided on how to determine the redundant joint out of a plurality of joints, or how to assign redundant joints when there are many redundant joints, and at the moment this is determined simply based on experiment.
Therefore there is a problem to solve in terms of obtaining a solution to an inverse kinematics problem by appropriately assigning one or more redundant joints from a plurality of joints, even if the redundant manipulator has a general structure which could have a plurality of redundant joints, and determining the joint angles of non-redundant joints at high-speed after the redundant joints are assigned.